C言語 ビット演算
table:ビット演算子
| 論理和(OR) a = b | 0x0f0f0f0f
& 論理積(AND) a = b & 0xffffffff
^ 排他的論理話(XOR) a = b ^ 0x0f0f0f0f
~ 反転(NOT) a = ~b
<< 左シフト a = b << 2
> 右シフト a = b >> 2
特定ビットを立てる
code:memo.c
int main() {
// 01001001
unsigned char num1 = 0x49;
// 01001001
// OR
// 10010010
num1 = num1 | 0x92
// → 11011011
printf("0x%x", num1);
}
特定ビットを落とす
code:memo.c
int main() {
// 11011011
unsigned char num = 0xDB;
// 01101101
// AND
// 11011011
num = num | 0x6D
// → 01001001 (0x49)
printf("0x%x", num);
}
排他的論理話(XOR)
反転(NOT)
左シフト
右シフト
安全なビット演算をする場合の参考
確認用
Q. C言語 ビット操作
参考
関連
調査用